<template>
    <!--列表-->
    <div class="list-container">
        <div class="sortList clearfix">
            <div class="center">
                <!--banner轮播-->
                <Carousel :list="bannerList"></Carousel>
            </div>
            <div class="right">
                <div class="news">
                    <h4>
                        <em class="fl">尚品汇快报</em>
                        <span class="fr tip">更多 ></span>
                    </h4>
                    <div class="clearix"></div>
                    <ul class="news-list unstyled">
                        <li>
                            <span class="bold">[特惠]</span>备战开学季
                            全民半价购数码
                        </li>
                        <li>
                            <span class="bold">[公告]</span>备战开学季
                            全民半价购数码
                        </li>
                        <li>
                            <span class="bold">[特惠]</span>备战开学季
                            全民半价购数码
                        </li>
                        <li>
                            <span class="bold">[公告]</span>备战开学季
                            全民半价购数码
                        </li>
                        <li>
                            <span class="bold">[特惠]</span>备战开学季
                            全民半价购数码
                        </li>
                    </ul>
                </div>
                <ul class="lifeservices">
                    <li class="life-item">
                        <i class="list-item"></i>
                        <span class="service-intro">话费</span>
                    </li>
                    <li class="life-item">
                        <i class="list-item"></i>
                        <span class="service-intro">机票</span>
                    </li>
                    <li class="life-item">
                        <i class="list-item"></i>
                        <span class="service-intro">电影票</span>
                    </li>
                    <li class="life-item">
                        <i class="list-item"></i>
                        <span class="service-intro">游戏</span>
                    </li>
                    <li class="life-item">
                        <i class="list-item"></i>
                        <span class="service-intro">彩票</span>
                    </li>
                    <li class="life-item">
                        <i class="list-item"></i>
                        <span class="service-intro">加油站</span>
                    </li>
                    <li class="life-item">
                        <i class="list-item"></i>
                        <span class="service-intro">酒店</span>
                    </li>
                    <li class="life-item">
                        <i class="list-item"></i>
                        <span class="service-intro">火车票</span>
                    </li>
                    <li class="life-item">
                        <i class="list-item"></i>
                        <span class="service-intro">众筹</span>
                    </li>
                    <li class="life-item">
                        <i class="list-item"></i>
                        <span class="service-intro">理财</span>
                    </li>
                    <li class="life-item">
                        <i class="list-item"></i>
                        <span class="service-intro">礼品卡</span>
                    </li>
                    <li class="life-item">
                        <i class="list-item"></i>
                        <span class="service-intro">白条</span>
                    </li>
                </ul>
                <div class="ads">
                    <img src="./images/ad1.png" />
                </div>
            </div>
        </div>
    </div>
</template>

<script>
import { mapState } from "vuex"
// 引入swiper
// import Swiper from "swiper"

export default {
    name: "ListContainer",
    // mounted：组件挂载完毕，正常来说结构（DOM）已经全有了
    // 为什么这里的swiper实例不能直接写，因为结构还没有完善
    mounted() {
        // 派发action，通过vuex发起
        // 开启命名空间后，组件中调用dispatch 要指明路径
        this.$store.dispatch("home/getBannerList")
        //在new Swiper实例之前，页面中结构必须的有
        //因为dispatch当中涉及到异步语句，导致v-for遍历的时候结构还没有完全因此不行
        /* setTimeout(() => {
            var mySwiper = new Swiper(
                document.querySelector(".swiper-container"),
                {
                    loop: true,
                    // 分页器
                    pagination: {
                        el: ".swiper-pagination",
                        // 点击小圆点的时候也会切换图片
                        clickable:true
                    },
                    navigation: {
                        nextEl: ".swiper-button-next",
                        prevEl: ".swiper-button-prev",
                    },
                }
            )
        }, 1000) */
    },
    computed: {
        ...mapState("home", ["bannerList"]),
    },
    /* watch: {
        // 监听bannerList数据的变化：因为这条数据发生过变化
        bannerList: {
            immediate: true,
            handler(newValue, oldValue) {
                // 当前函数执行：只能保证bannerList中的数据已经有了，但是你没办法保证v-for已经执行结束
                // v-for执行完毕之后才有结构

                // nextTick:在下次 DOM 更新循环结束之后执行延迟回调。在修改数据之后立即使用这个方法，
                // 获取更新后的 DOM。
                this.$nextTick(() => {
                    var mySwiper = new Swiper(this.$refs.mySwiper, {
                        loop: true,
                        // 分页器
                        pagination: {
                            el: ".swiper-pagination",
                            // 点击小圆点的时候也会切换图片
                            clickable: true,
                        },
                        navigation: {
                            nextEl: ".swiper-button-next",
                            prevEl: ".swiper-button-prev",
                        },
                    })
                })
            },
        },
    }, */
}
</script>

<style scoped lang="less">
.list-container {
    width: 1200px;
    margin: 0 auto;

    .sortList {
        height: 464px;
        padding-left: 210px;

        .center {
            box-sizing: border-box;
            width: 740px;
            height: 100%;
            padding: 5px;
            float: left;
        }

        .right {
            float: left;
            width: 250px;

            .news {
                border: 1px solid #e4e4e4;
                margin-top: 5px;

                h4 {
                    border-bottom: 1px solid #e4e4e4;
                    padding: 5px 10px;
                    margin: 5px 5px 0;
                    line-height: 22px;
                    overflow: hidden;
                    font-size: 14px;

                    .fl {
                        float: left;
                    }

                    .fr {
                        float: right;
                        font-size: 12px;
                        font-weight: 400;
                    }
                }

                .news-list {
                    padding: 5px 15px;
                    line-height: 26px;

                    .bold {
                        font-weight: 700;
                    }
                }
            }

            .lifeservices {
                border-right: 1px solid #e4e4e4;
                overflow: hidden;
                display: flex;
                flex-wrap: wrap;

                .life-item {
                    border-left: 1px solid #e4e4e4;
                    border-bottom: 1px solid #e4e4e4;
                    margin-right: -1px;
                    height: 64px;
                    text-align: center;
                    position: relative;
                    cursor: pointer;
                    width: 25%;

                    .list-item {
                        background-image: url(~@/assets/images/icons.png);
                        width: 61px;
                        height: 40px;
                        display: block;
                    }

                    .service-intro {
                        line-height: 22px;
                        width: 60px;
                        display: block;
                    }

                    &:nth-child(1) {
                        .list-item {
                            background-position: 0px -5px;
                        }
                    }

                    &:nth-child(2) {
                        .list-item {
                            background-position: -62px -5px;
                        }
                    }

                    &:nth-child(3) {
                        .list-item {
                            background-position: -126px -5px;
                        }
                    }

                    &:nth-child(4) {
                        .list-item {
                            background-position: -190px -5px;
                        }
                    }

                    &:nth-child(5) {
                        .list-item {
                            background-position: 0px -76px;
                        }
                    }

                    &:nth-child(6) {
                        .list-item {
                            background-position: -62px -76px;
                        }
                    }

                    &:nth-child(7) {
                        .list-item {
                            background-position: -126px -76px;
                        }
                    }

                    &:nth-child(8) {
                        .list-item {
                            background-position: -190px -76px;
                        }
                    }

                    &:nth-child(9) {
                        .list-item {
                            background-position: 0px -146px;
                        }
                    }

                    &:nth-child(10) {
                        .list-item {
                            background-position: -62px -146px;
                        }
                    }

                    &:nth-child(11) {
                        .list-item {
                            background-position: -126px -146px;
                        }
                    }

                    &:nth-child(12) {
                        .list-item {
                            background-position: -190px -146px;
                        }
                    }
                }
            }

            .ads {
                margin-top: 5px;

                img {
                    opacity: 0.8;
                    transition: all 400ms;

                    &:hover {
                        opacity: 1;
                    }
                }
            }
        }
    }
}
</style>